﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ParasitoLibrary.Core.Entidade;
using ParasitoLibrary.Business.Controle;

namespace ParasitoLibrary.Business.Fachada
{
    public abstract class FachadaParasitoAbstrata
    {
        public FachadaParasitoAbstrata() : base() { }

        public IList<Nivel> carregarNiveis()
        {
            return ControleNivel.getInstancia().carregarEntidades();
        }

        public Nivel consultarNivelPorCodigo(String codigo)
        {
            return ControleNivel.getInstancia().consultarPorCodigo(codigo);
        }

        public IList<Assunto> carregarAssuntos()
        {
            return ControleAssunto.getInstancia().carregarEntidades();
        }

        public Assunto consultarAssuntoPorCodigo(String codigo)
        {
            return ControleAssunto.getInstancia().consultarPorCodigo(codigo);
        }

        public void inserirQuestao(Questao questao)
        {
            ControleQuestao.getInstancia().inserir(questao);
        }

        public void alterarQuestao(Questao questao, ref IList<Questao> listaQuestao)
        {
            ControleQuestao.getInstancia().alterar(questao, ref listaQuestao);
        }

        public void excluirQuestao(Questao questao, ref IList<Questao> listaQuestao)
        {
            ControleQuestao.getInstancia().excluir(questao, ref listaQuestao);
        }

        public IList<Questao> carregarQuestoes()
        {
            return ControleQuestao.getInstancia().carregarEntidades();
        }

        public IList<Questao> carregarQuestoes(Nivel nivel, Assunto assunto, string enunciadoPergunta)
        {
            return ControleQuestao.getInstancia().carregarEntidades(nivel, assunto, enunciadoPergunta);
        }

        public void exportarQuestoes(string arquivoQuestoes)
        {
            ControleQuestoes.getInstancia().exportarQuestoes(arquivoQuestoes);
        }

        public void importarQuestoes(string arquivoQuestoes)
        {
            ControleQuestoes.getInstancia().importarQuestoes(arquivoQuestoes);
        }

        public int calcularTotalPerguntas(Nivel nivel, Assunto assunto)
        {
            return ControleQuestoes.getInstancia().calcularTotalPerguntas(nivel, assunto);
        }

        public Questoes carregarQuestoes(Nivel nivel, Assunto assunto)
        {
            return ControleQuestoes.getInstancia().carregarQuestoes(nivel, assunto);
        }
    }
}
